/**
 * 学习目标：泛型函数-多泛型变量间约束
 */

// 变量间添加约束条件 -- key属于obj的键
function test<T, K extends keyof T>(obj: T, key: K) {
  //捕获两个参数的类型

  // 给两个泛型，添加约束条件： key必须属于obj的键
  return obj[key];
};

const res1 = test({ name1: 'zs', age1: 18 }, 'age1');
const res2 = test({ name2: 'ls', age2: 19 }, 'name2');
const res3 = test({ fggh: 'zx', 'hih': 77 }, 'hih');